package com.starbaba.weixin.model;

import org.apache.struts2.json.annotations.JSON;

import java.io.Serializable;
import java.util.Date;

/**
 * @author Yukinomiu
 * @version 1.0
 */
public final class WeixinQRRecordVO implements Serializable {

    private static final long serialVersionUID = -6405301773583378837L;

    private Long id;
    private String openId;
    private String ticket;
    private String phone;
    private String code;
    private Integer event;
    private Integer platform;
    private Integer type;
    private String channel;
    private String codeChannel;
    private Long codeSerialNumber;
    private Integer status;
    private Integer errorCode;
    private Date scanDateTime;
    private Date pageDateTime;
    private Date registerDateTime;
    private Date activeDateTime;
    private Date failDateTime;

    public WeixinQRRecordVO() {
    }

    public WeixinQRRecordVO(Long id, String openId, String ticket, String phone, String code, Integer event, Integer platform, Integer type, String channel, String codeChannel, Long codeSerialNumber, Integer status, Integer errorCode, Date scanDateTime, Date pageDateTime, Date registerDateTime, Date activeDateTime, Date failDateTime) {
        this.id = id;
        this.openId = openId;
        this.ticket = ticket;
        this.phone = phone;
        this.code = code;
        this.event = event;
        this.platform = platform;
        this.type = type;
        this.channel = channel;
        this.codeChannel = codeChannel;
        this.codeSerialNumber = codeSerialNumber;
        this.status = status;
        this.errorCode = errorCode;
        this.scanDateTime = scanDateTime;
        this.pageDateTime = pageDateTime;
        this.registerDateTime = registerDateTime;
        this.activeDateTime = activeDateTime;
        this.failDateTime = failDateTime;
    }

    @Override
    public String toString() {
        return "WeixinQRRecordVO{" +
                "id=" + id +
                ", openId='" + openId + '\'' +
                ", ticket='" + ticket + '\'' +
                ", phone='" + phone + '\'' +
                ", code='" + code + '\'' +
                ", event=" + event +
                ", platform=" + platform +
                ", type=" + type +
                ", channel='" + channel + '\'' +
                ", codeChannel='" + codeChannel + '\'' +
                ", codeSerialNumber=" + codeSerialNumber +
                ", status=" + status +
                ", errorCode=" + errorCode +
                ", scanDateTime=" + scanDateTime +
                ", pageDateTime=" + pageDateTime +
                ", registerDateTime=" + registerDateTime +
                ", activeDateTime=" + activeDateTime +
                ", failDateTime=" + failDateTime +
                '}';
    }

    public Long getId() {
        return id;
    }

    public WeixinQRRecordVO setId(Long id) {
        this.id = id;
        return this;
    }

    public String getOpenId() {
        return openId;
    }

    public WeixinQRRecordVO setOpenId(String openId) {
        this.openId = openId;
        return this;
    }

    public String getTicket() {
        return ticket;
    }

    public WeixinQRRecordVO setTicket(String ticket) {
        this.ticket = ticket;
        return this;
    }

    public String getPhone() {
        return phone;
    }

    public WeixinQRRecordVO setPhone(String phone) {
        this.phone = phone;
        return this;
    }

    public String getCode() {
        return code;
    }

    public WeixinQRRecordVO setCode(String code) {
        this.code = code;
        return this;
    }

    public Integer getEvent() {
        return event;
    }

    public WeixinQRRecordVO setEvent(Integer event) {
        this.event = event;
        return this;
    }

    public Integer getPlatform() {
        return platform;
    }

    public WeixinQRRecordVO setPlatform(Integer platform) {
        this.platform = platform;
        return this;
    }

    public Integer getType() {
        return type;
    }

    public WeixinQRRecordVO setType(Integer type) {
        this.type = type;
        return this;
    }

    public String getChannel() {
        return channel;
    }

    public WeixinQRRecordVO setChannel(String channel) {
        this.channel = channel;
        return this;
    }

    public String getCodeChannel() {
        return codeChannel;
    }

    public WeixinQRRecordVO setCodeChannel(String codeChannel) {
        this.codeChannel = codeChannel;
        return this;
    }

    public Long getCodeSerialNumber() {
        return codeSerialNumber;
    }

    public WeixinQRRecordVO setCodeSerialNumber(Long codeSerialNumber) {
        this.codeSerialNumber = codeSerialNumber;
        return this;
    }

    public Integer getStatus() {
        return status;
    }

    public WeixinQRRecordVO setStatus(Integer status) {
        this.status = status;
        return this;
    }

    public Integer getErrorCode() {
        return errorCode;
    }

    public WeixinQRRecordVO setErrorCode(Integer errorCode) {
        this.errorCode = errorCode;
        return this;
    }

    @JSON(format = "yyyy-MM-dd HH:mm:ss")
    public Date getScanDateTime() {
        return scanDateTime;
    }

    public WeixinQRRecordVO setScanDateTime(Date scanDateTime) {
        this.scanDateTime = scanDateTime;
        return this;
    }

    @JSON(format = "yyyy-MM-dd HH:mm:ss")
    public Date getPageDateTime() {
        return pageDateTime;
    }

    public WeixinQRRecordVO setPageDateTime(Date pageDateTime) {
        this.pageDateTime = pageDateTime;
        return this;
    }

    @JSON(format = "yyyy-MM-dd HH:mm:ss")
    public Date getRegisterDateTime() {
        return registerDateTime;
    }

    public WeixinQRRecordVO setRegisterDateTime(Date registerDateTime) {
        this.registerDateTime = registerDateTime;
        return this;
    }

    @JSON(format = "yyyy-MM-dd HH:mm:ss")
    public Date getActiveDateTime() {
        return activeDateTime;
    }

    public WeixinQRRecordVO setActiveDateTime(Date activeDateTime) {
        this.activeDateTime = activeDateTime;
        return this;
    }

    @JSON(format = "yyyy-MM-dd HH:mm:ss")
    public Date getFailDateTime() {
        return failDateTime;
    }

    public WeixinQRRecordVO setFailDateTime(Date failDateTime) {
        this.failDateTime = failDateTime;
        return this;
    }
}
